// License Notification
//======================================================
// Copyright (c) 2010 Channel Intelligence Inc.
// All rights reserved. This program and the accompanying materials
// are made available under the terms of the Eclipse Public License v1.0
// which accompanies this distribution, and is available at
// http://www.eclipse.org/legal/epl-v10.html
//
// ======================================================




using System;
using System.Collections.Generic;
using System.Text;

namespace CIP4.RulesEngine
{
    public enum AtomSourceEnum
    {
        /// <summary> 
        /// Defines an Atom mapped to a literal value
        /// </summary>
        literal = 0,
        /// <summary> 
        /// Defines an Atom mapped to a variable in the data input to the rule engine
        /// </summary>
        variable = 1,
        /// <summary> 
        /// Defines an Atom mapped to a rules engine parameter - this may be set by the engine
        ///            invoker before calling the rules engine or interrogated after invoking the engine
        /// </summary>
        parameter = 2,
        /// <summary> 
        /// Defines an Atom mapped to a function provided to the rules engine at Execute time. The 
        ///            function will be invoked passing the content of the Atom and the data object passed to the 
        ///            Execute method, the function will be expected to return a string representing the Atom's value.
        /// </summary>
        function = 3,
        /// <summary> 
        /// Defines an Atom mapped to a named value in the DataPacketType.NamedValues dictionary. It is the
        ///            caller's responsibility to provide the named values.
        /// </summary>
        namedValue = 4,
        INVALIDOP = 6
    }
}
